<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>Map与Set</h1>
<script>


    //1.Map是一种键值对的结构，使用Map可以提高查找效率。
    let map = new Map([['北京', "010"], ['上海', "021"], ['广州', "020"],['东京', "000"]]);
    //普通forEach遍历
    map.forEach(function(v,k){
        console.log(k+"="+v);
    })
    //箭头函数遍历
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    console.log("----------value的替换-----------");
    //value的替换
    map.set("东京","null");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    //添加新的键值对
    console.log("----------添加新的键值对-----------");
    map.set('西安', "029");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    //判断某个键是否存在
    console.log(map.has("上海"));
    //删除某个键
    map.delete("广州");
    console.log("----------删除某个键-----------");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })


    //2.Set和Map类似，也是一组key的集合，但不存储value。由于key不能重复，所以，在Set中，没有重复的key。
    let set = new Set(['orange','banana','apple']);
    console.log("-----------遍历set----------");
    set.forEach(function(k){
        console.log(k);
    })

    set.add('grape');
    set.add('apple'); //不会添加重复的key
    console.log("-----------添加重复的key----------");
    set.forEach(function(k){
        console.log(k);
    })

    set.delete('banana')
    console.log("-----------删除key----------");
    set.forEach(function(k){
        console.log(k);
    })
</script>
</body>
</html>